package cn.com.cfae.iras.doc.analyze.parse.model;


import java.util.*;

/**
 * 发行人
 */
public class FXRModel extends BizBaseModel {

    public static final String MODEL_NAME = "FXR";

    /**
     * 发行人
     */
    private static final String FXRMC = "FXRMC";
    /**
     * 信用评级
     */
    private static final String XYPJ = "XYPJ";
    /**
     * 展望
     */
    private static final String ZW = "ZW";
    /**
     * 联系地址
     */
    private static final String LXDZ = "LXDZ";
    /**
     * 法定代表人
     */
    private static final String FDDBR = "FDDBR";
    /**
     * 联系人
     */
    private static final String LXR = "LXR";
    /**
     * 电话
     */
    private static final String DH = "DH";
    /**
     * 传真
     */
    private static final String CZ = "CZ";
    /**
     * 邮政编码
     */
    private static final String YZBM = "YZBM";
    /**
     * 注册资本
     */
    private static final String ZCZB = "ZCZB";

    /**
     * 设立（工商注册）日期
     */
    private static final String SLRQ = "SLRQ";
    /**
     * 工商登记号
     */
    private static final String GSDJH = "GSDJH";

    private static Map<String, String> items = new HashMap<>();

    public static List<String> getSynonyms(String itemName) {
        return Arrays.asList(items.get(itemName).split(SYNONYM_SPLIT_CHAR));
    }

    static {
        items.put(FXRMC, "企业|发行人|公司名称|名称|公司中文名称|公司|联系人|注册名称|单位名称");
        items.put(LXDZ, "联系地址|住所|注册地址|住址|地址|公司住所|注册地|发行人注册地|发行人住所");
        items.put(FDDBR, "法定代表人|法人代表|法定代表|公司法定代表人");
        items.put(XYPJ, "主体信用等级|主体评级|债项信用级别|主体长期信用评级|主体信用级别|发行人主体长期信用评级|企业主体信用评级|发行人主体评级|本期中期票据信用评级|企业主体长期信用评级|债项信用评级结果|主体信用评级结果|发行人主体信用评级|本期短期融资券信用评级|债项评级|发行人主体信用级别|主体评级|主体长期信用等级|中期票据信用等级|主体信用级别|信用评级结果|发行人主体长期信用等级|本期中期票据信用等级|信用级别|发行人主体信用评级|发行人主体评级|发行人主体信用等级|本期中期票据债项|本期中期票据信用评级|债项级别|本次短期融资券信用等级|短期融资券信用等级|本期中期票据信用等级|企业主体长期信用评级|本期短期融资券信用评级|发行人主体长期信用等级|债项信用级别");
        items.put(LXR, "联系人");
        items.put(DH, "电话|联系电话|发行人联系电话|发行人电话");
        items.put(CZ, "发行人传真|传真");
        items.put(YZBM, "发行人邮政编码|发行人邮编|邮编|邮政编码");
        items.put(ZCZB, "注册资本");
        items.put(SLRQ, "设立日期|成立日期|设立(工商注册)日期|注册日期|工商登记日|工商登记时间|成立时间");
        items.put(GSDJH, "工商登记号|统一社会信用代码|营业执照注册号|注册号|营业执照|统一信用代码");
        items.put(ZW,"展望|评级展望");
    }

    public static List<ExtractItem> createExtractItemList() {
        List<ExtractItem> extractItemList = new ArrayList<>();
        items.forEach((key, value) -> {
            ExtractItem extractItem = new ExtractItem();
            extractItem.setItemName(key);
            extractItem.setSynonyms(value.split(SYNONYM_SPLIT_CHAR));
            extractItemList.add(extractItem);
        });
        return extractItemList;
    }

}
